﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using System.Text;

namespace Chloe.Home
{
    //【Welcome to .NET Core】ASP.NET Core介绍
    //http://www.lyblogs.cn/Article/Detail/LY08252045102818
    //程序执行顺序       
     //启动程序，首先进入Main方法，其次进入ConfigureServices方法添加服务，最后进入Configure方法处理应用程序请求。
    public class Program
    {
        public static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); /* 支持中文 */

            string contentRoot = Directory.GetCurrentDirectory();

            //http://www.cnblogs.com/chenchuxin/archive/2017/04/26/6771427.html
            //http://www.cnblogs.com/frankyou/archive/2016/07/22/5695214.html

            var host = new WebHostBuilder()//创建Web应用程序宿主
                .UseKestrel()//使用自带的Kestrel服务器
                .BindUrls(args, contentRoot)
                .UseContentRoot(contentRoot)//指定由WebHost使用的内容根目录
                .UseIISIntegration()//使IIS或IIS Express可以作为应用的反向代理服务器以及添加配置管理、日志等中间件
                .UseStartup<Startup>()
                .UseApplicationInsights()
                .Build();//构建了用于宿主应用程序的IWebHost

            host.Run();//启动IWebHost来监听传入的HTTP请求
        }
    }
}
